package app.sevenc.lib_framework.mvvm.v

import app.sevenc.lib_framework.mvvm.DataBindingConfig

/**
 * Activity基类接口
 *
 * @author Seven-C
 * @date 2021/8/25
 */
interface IBaseFrameActivity {

    /**
     * super.onCreate()之前调用
     */
    fun onCreateBefore()

    /**
     * DataBinding 严格模式：
     * 将 DataBinding 实例限制于 base 页面中，默认不向子类暴露，
     * 通过这样的方式，来彻底解决 视图实例 null 安全的一致性问题，
     * 如此，视图实例 null 安全的安全性将和基于函数式编程思想的 Jetpack Compose 持平。
     * 而 DataBindingConfig 就是在这样的背景下，用于为 base 页面中的 DataBinding 提供绑定项。
     * 设计思路详情 [https://xiaozhuanlan.com/topic/9816742350] 和 [https://xiaozhuanlan.com/topic/2356748910]
     * @return DataBindingConfig
     */
    fun getDataBindingConfig(): DataBindingConfig
}